﻿using LinkyPOS.Class;
using Microsoft.Win32;
using System;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;

namespace LinkyPOS
{
    public partial class panel : Form
    {
        public static string imza;
        public static string kurumsalisim;
        public static string magazakodu;
        public static string telefon;
        public static string yazici;
        private lisanslama l = new lisanslama();

        private linkDataContext ly = new linkDataContext();

        public panel()
        {
            InitializeComponent();
        }
        private void ayarlarToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Kayitlar k = new Kayitlar();
            MainMenuStrip.Enabled = false;
            k.Show();
            k.FormClosing += new FormClosingEventHandler(KayitKabul_FormClosing);
        }

        private void ayarlarToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            Ayarlar a = new Ayarlar();
            MainMenuStrip.Enabled = false;
            a.Show();
            a.FormClosing += new FormClosingEventHandler(KayitKabul_FormClosing);
        }

        private void güncelleştirToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }

        private void günlükKasaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            GunlukKasa gk = new GunlukKasa();
            MainMenuStrip.Enabled = false;
            gk.Show();
            gk.FormClosing += new FormClosingEventHandler(KayitKabul_FormClosing);
        }

        private void hatırlatmalarToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Hatirlatmalar hrm = new Hatirlatmalar();
            hrm.Show();
            MainMenuStrip.Enabled = false;
            hrm.FormClosing += new FormClosingEventHandler(KayitKabul_FormClosing);
        }

        private void hatırlatmaSİlToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }

        private void kayıtKabulToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }

        private void KayitKabul_FormClosing(object sender, FormClosingEventArgs e) // Form3 kapatıldıgı anda FormClosing tetiklenir
        {
            MainMenuStrip.Enabled = true;
        }

        private void kayToolStripMenuItem_Click(object sender, EventArgs e)
        {
            KayitKabul kb = new KayitKabul();
            kb.Show();
            MainMenuStrip.Enabled = false;
            kb.FormClosing += new FormClosingEventHandler(KayitKabul_FormClosing);
        }

        private void linkyScriptToolStripMenuItem_Click(object sender, EventArgs e)
        {
            linkyscriptmanager ls = new linkyscriptmanager();
            ls.Show();
        }

        private void masraflarToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Masraflar m = new Masraflar();
            MainMenuStrip.Enabled = false;
            m.Show();
            m.FormClosing += new FormClosingEventHandler(KayitKabul_FormClosing);
        }

        private void panel_Load(object sender, EventArgs e)
        {
            //  timerbackup.Start();
            // l.versyon_kontrol();
            this.Name = "";

            //CheckForIllegalCrossThreadCalls = false;
            //// ayrı bir thread ile lisans kontrolü yapılacak
            //ThreadStart ts = new ThreadStart(l.durum);
            //Thread t1 = new Thread(ts);
            //t1.Start();
            //// buradalisans yapilmis olunur
            ////if (l.odemedurumu)
            ////{
            ////    t1.Abort();
            ////}
            //if (true)
            //{
            //    t1.Abort();
            //}
            //else
            //{
            //    MessageBox.Show("Programiniz geçici Olarak Kapatıldı Lütfen Program Satıcınız ile Görüşünüz");
            //    Application.Exit();
            //}

            // durum kontrolu yapilimis islemi bitiriliyor

            this.Location = new Point(0, 0);
            this.Size = Screen.PrimaryScreen.WorkingArea.Size;
            this.LayoutMdi(MdiLayout.TileHorizontal);
            try
            {
                // bu seviye lisanslanmışmı kontrolü yapıyor
                //int i = Convert.ToInt32(Registry.CurrentUser.OpenSubKey("LinkyControl").OpenSubKey("LinkyPOS").GetValue("durum"));
                // bu seviyede Gün Sonu yapılmışmı kontrolü yapılıyor
                DateTime gun = Convert.ToDateTime(Registry.CurrentUser.OpenSubKey("LinkyControl").OpenSubKey("LinkyDay").GetValue("date"));
                if (gun.ToString("d") == DateTime.Now.ToString("d"))
                {
                    // bu seviye gün başı yapılmışdemek
                }
                else
                {
                    MessageBox.Show("Gün Başı Yapılmamış");
                    // gün başı yapılmamış
                    // dün tarihli en son raporu bir gün öncesi için hazırla
                    TimeSpan ts1 = new TimeSpan(1, 0, 0, 0); // Burada 2 gün, 10 saat, 1 dakika, 1sn şeklinde tanımlama yapıyoruz
                    //DateTime d = DateTime.Now + ts;
                    DateTime d1 = DateTime.Now.Subtract(ts1); // Şimdiki zamandan ts ile belirlenen saati çıkartır
                    try
                    {
                        kasa k = new kasa();
                        k.toplamparcasayisi(d1);
                        k.toplamsiparissayisi(d1);
                        k.Gunlukhasilatgetir(d1);
                        k.yeninakitbul(d1);
                        k.yenivisabul(d1);
                        k.eskinakitbul(d1);
                        k.eskivisabul(d1);
                        k.DonemlikCariGetir(d1);
                        k.ToplamCarigetir();
                        k.Gunlukmasrafgetir(d1);
                        kasaraporlari ksrp = new kasaraporlari()
                        {
                            tarih = d1,
                            eskinakit = k.Eskinakit,
                            eskivisa = k.Eskivisa,
                            gunluknakit = k.Yeninakit,
                            gunlukvisa = k.Yenivisa,
                            toplamcari = k.Genelcari,
                            gunlukcari = k.Gunlukcari,
                            gunlukciro = k.Gunlukhasilat,
                            gunlukmasraf = k.Gunlukmasraflar,
                            parcasayisi = (int)k.Toplamparca,
                            musterisayisi = (int)k.Toplammusteri,
                        };
                        ly.kasaraporlaris.InsertOnSubmit(ksrp);
                        ly.SubmitChanges();
                        // servis kullanilarak dunun raporu web uygulamasina birakilabilir
                        // ayrica programin acilis zamani web ortamina aktarilabilir



                        Registry.CurrentUser.CreateSubKey("LinkyControl").CreateSubKey("LinkyDay").SetValue("date", DateTime.Now);


                        mysqlserver s = new mysqlserver();
                        s.tarih = d1.ToString();
                        s.eskinakit = (decimal)k.Eskinakit;
                        s.eskivisa = (decimal)k.Eskivisa;
                        s.gunluknakit = (decimal)k.Yeninakit;
                        s.gunlukvisa = (decimal)k.Yenivisa;
                        s.toplmacari = (decimal)k.Genelcari;
                        s.gunlukcari = (decimal)k.Gunlukcari;
                        s.gunlukciro = (decimal)k.Gunlukhasilat;
                        s.gunlukmasraf = (decimal)k.Gunlukmasraflar;
                        s.parcasayisi =(int)k.Toplamparca;
                        s.musterisayisi = (int)k.Toplammusteri;
                        s.netkasaraporu();
                        //bu seviyede dunun kasa raporu  local servera eklenmis bulunmakta ancak uzak servera eklenemiyor
                        // bunun  icin uzak sunucu eklenmismi kontrolu yapmak gerekiyor

                    }
                    catch (Exception d)
                    {
                        err2 err = new err2(d.ToString(), this.Name);
                        MessageBox.Show("Yazılım Windows Kaynaklı Bir Hata ile Karşılaştı / Program Kapatılacak Lütfen Tekrar Programı Aktif Hale Getiriniz");
                        Application.Exit();
                    }
                }
            }
            catch (Exception)
            {
                Lisanslama_Paneli lp = new Lisanslama_Paneli();
                MainMenuStrip.Enabled = false;
                lp.MdiParent = this;
                lp.Show();
            }

            finally
            {
                ayarlar2 a = new ayarlar2();
                magazakodu = a.Magazakodu;
                kurumsalisim = a.Kurumsalisim;
                telefon = a.Telefon;
                yazici = a.Yazicimodel;
                imza = a.Imza;
            }
        }
        private void raporlarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            UrunTeslim ut = new UrunTeslim();
            ut.Show();
            MainMenuStrip.Enabled = false;
            ut.FormClosing += new FormClosingEventHandler(KayitKabul_FormClosing);
        }
        private void raporlarToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Raporlar rp = new Raporlar();
            MainMenuStrip.Enabled = false;
            rp.Show();
            rp.FormClosing += new FormClosingEventHandler(KayitKabul_FormClosing);
        }

        private void kasakaydet()
        {
            kasa k = new kasa();
            k.toplamparcasayisi(DateTime.Now);
            k.toplamsiparissayisi(DateTime.Now);
            k.Gunlukhasilatgetir(DateTime.Now);
            k.yeninakitbul(DateTime.Now);
            k.yenivisabul(DateTime.Now);
            k.eskinakitbul(DateTime.Now);
            k.eskivisabul(DateTime.Now);
            k.GunlukCariGetir(DateTime.Now);
            k.ToplamCarigetir();
            k.Gunlukmasrafgetir();


            mysqlserver s = new mysqlserver();
            s.tarih = DateTime.Now.ToString();
            s.eskinakit = (decimal)k.Eskinakit;
            s.eskivisa = (decimal)k.Eskivisa;
            s.gunluknakit = (decimal)k.Yeninakit;
            s.gunlukvisa = (decimal)k.Yenivisa;
            s.toplmacari = (decimal)k.Genelcari;
            s.gunlukcari = (decimal)k.Gunlukcari;
            s.gunlukciro = (decimal)k.Gunlukhasilat;
            s.gunlukmasraf = (decimal)k.Gunlukmasraflar;
            s.parcasayisi = (int)k.Toplamparca;
            s.musterisayisi = (int)k.Toplammusteri;
            s.netkasaraporu();

        
        }

        private void timerbackup_Tick(object sender, EventArgs e)
        {
            

            CheckForIllegalCrossThreadCalls = false;
            // ayrı bir thread ile  server upload yapiyoruz

            ThreadStart ts = new ThreadStart(kasakaydet);
            Thread t1 = new Thread(ts);
            t1.Start();
        }

        private void versyonToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }

        private void versyonToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            versyon vr = new versyon();
            vr.Show();
        }

        private void videolarToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }
        private void yöneticiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            admin ad = new admin();
            ad.Show();
            MainMenuStrip.Enabled = false;
            ad.FormClosing += new FormClosingEventHandler(KayitKabul_FormClosing);
        }
    }
}